using System;
using System.Xml;
using System.Xml.Serialization;
using System.Runtime.Serialization;
using System.Collections.Generic;

namespace GalaxyZoo.Client.Model
{
    [DataContract]
    [XmlType(AnonymousType = true)]
    [XmlRoot(IsNullable = false, ElementName="classification", Namespace="")]
    public class Classification : AbstractGalaxyZooObject
    {
        /// <summary>
        /// Gets/Set the Id property.
        /// </summary>
        [DataMember]
        [XmlElement(ElementName="id")]
        public int Id { get; set; }

        /// <summary>
        /// Gets/Set the UserId property.
        /// </summary>
        [DataMember]
        [XmlElement(ElementName="user_id")]
        public int UserId { get; set; }

        /// <summary>
        /// Gets/Set the ProjectId property.
        /// </summary>
        [DataMember]
        [XmlElement(ElementName="project_id")]
        public int ProjectId { get; set; }

        /// <summary>
        /// Gets/Set the ApplicationId property.
        /// </summary>
        [DataMember]
        [XmlElement(ElementName="application_id")]
        public int ApplicationId { get; set; }

        /// <summary>
        /// Gets/Set the Assets property.
        /// </summary>
        [DataMember]
        [XmlArray(ElementName="assets")]
        [XmlArrayItem(ElementName="asset")]
        public List<Asset> Assets { get; set; }

        /// <summary>
        /// Gets/Set the Annotations property.
        /// </summary>
        [DataMember]
        [XmlArray(ElementName="annotations")]
        [XmlArrayItem(ElementName="annotation")]
        public List<Annotation> Annotations { get; set; }
    }
}
